EC2 の Amazon Linux 2023 でSwapメモリ​​の作成

EC2 の Amazon Linux 2023 でSwapメモリ​​の作成

スワップは仮想メモリです。Swapメモリは、Amazon Linux 2023のコンソール画面にていくつかのコマンドを実行するだけで作成できます。

こんにちは、クラスメソッドタイランドのPOPです。

このブログはタイ語のブログから日本語に翻訳したものです。
วิธีสร้าง Swap Memory ใน Amazon Linux 2 ของ EC2 | DevelopersIO

Swapとは

Swapメモリは、物理メモリ(RAM)が不足した際に、ディスク上の特定の領域を仮想メモリとして使用する仕組みです。これにより、システムのメモリ管理が柔軟になり、一時的なメモリ不足を補うことができます。

前提条件

※EC2 インスタンスが作成済みであること。
EC2 インスタンスを作成する方法は、以下のリンクを参照してください。
https://dev.classmethod.jp/articles/jp-how-to-install-amazon-linux-2023-on-ec2/

Swapメモリの作成

スワップ領域の確認

スワップ領域を確認します。

free -m

最初のスワップ領域は「Swap: Total=0」です。
Output

[root@ip-xx-xx-xx-xx ~]# free -m
               total        used        free      shared  buff/cache   available
Mem:             908         292         428           0         187         503
Swap:              0           0           0
[root@ip-xx-xx-xx-xx ~]#

スワップファイルの作成

ここでは仮に1GBのスワップ領域を作成するとします。
※1GB を超える容量が必要な場合は、1024 をより大きな値に変更してください。

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
echo '/var/swap.1 none swap sw 0 0' >> /etc/fstab

Output

[root@ip-xx-xx-xx-xx ~]# /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
echo '/var/swap.1 none swap sw 0 0' >> /etc/fstab
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.52188 s, 165 MB/s
mkswap: /var/swap.1: insecure permissions 0644, fix with: chmod 0600 /var/swap.1
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=ebb23e00-f0f2-429a-b928-c06b9f58e34e
swapon: /var/swap.1: insecure permissions 0644, 0600 suggested.
[root@ip-xx-xx-xx-xx ~]#

スワップファイルを作成した後スワップ領域の確認

もう一度スワップ領域を確認します。

free -m

スワップファイルを作成した後は「Swap: Total=1023」です。
Output

[root@ip-xx-xx-xx-xx ~]# free -m
               total        used        free      shared  buff/cache   available
Mem:             908         290          54           0         563         504
Swap:           1023           0        1023
[root@ip-xx-xx-xx-xx ~]#

これで、インスタンスを再起動してもスワップメモリは維持されます。

Swapメモリの削除

もし、スワップ領域が不要になったら削除することができます。
以下でスワップ領域の削除方法を説明します。

スワップファイルを無効にする

「swapoff」コマンドを使用して、現在使用されているスワップ ファイルを無効にします。

/sbin/swapoff /var/swap.1

スワップファイルを削除する

スワップ ファイルを無効にしてから、スワップ ファイルを削除します。

rm -rf /var/swap.1

ファイル「/etc/fstab」内のエントリを削除する

テキストエディタで「/etc/fstab」ファイルを開きます。

vi /etc/fstab

この行を削除します。

/var/swap.1 none swap sw 0 0

まとめ

Swapの仕組みは、HDDやSSDの領域を利用してSwapを作成し、それを仮想メモリとして使用することで、メモリを増やしてインスタンスの動作させられます。メモリが足りない時の対策になります。
EC2をより安く使うためのコツ!Swapメモリを活用しましょう。

仮想メモリではなく、本当にメモリを増やしたい場合は、以下の記事を見てください。
https://dev.classmethod.jp/articles/how-to-add-memory-in-ec2-jp/

この記事がどなたかのお役に立てば幸いです。
以上、クラスメソッドタイランドのPOP(Tinnakorn Maneewong)でしたっ!

関連記事

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.